SQLiteOpenHelper 的 Android JUnit 测试
全部标签 如何对自定义DelegatingHandler进行单元测试?我有以下内容,但它提示未设置innerHandler。varhttpRequestMessage=newHttpRequestMessage(HttpMethod.Get,"http://foo.com");varhandler=newFooHandler(){InnerHandler=newFooHandler()};varinvoker=newHttpMessageInvoker(handler);varresult=awaitinvoker.SendAsync(httpRequestMessage,newCancella
我有一个派生自HttpApplication的类,它添加了一些额外的功能。我已经到了需要对这些功能进行单元测试的地步,这意味着我必须能够创建HttpApplication的新实例、伪造请求并检索响应对象。我该如何对HttpApplication对象进行单元测试?我目前正在使用Moq,但我不知道如何设置所需的模拟对象。 最佳答案 不幸的是,这并不是特别容易做到,因为HttpApplication不适合很容易地进行模拟;没有可模拟的接口(interface),并且大多数方法未标记为虚拟。我最近遇到了与HttpRequest和HttpWe
我已经从NUnit迁移到使用Xunit进行单元测试。使用NUnit,我将创建一个方法,其中包含具有相同结果的多个测试用例。例如,下面的NUnit单元测试测试类构造函数的验证,特别是“name”变量。名称不能为null、空或空格。该测试检查是否正确抛出ArgumentNullException:[Test][TestCase(null)][TestCase("")][TestCase("")][ExpectedException(typeof(ArgumentNullException))]publicvoidConstructor_InvalidName_ExceptionThrown
有没有办法测试当前线程是否持有对象的监视器锁?IE。相当于Java中的Thread.holdsLock。谢谢, 最佳答案 我不相信有。你可以做一些很糟糕的事情,比如调用Monitor.Wait(monitor,0)并捕获SynchronizationLockException,但这非常可怕(理论上可以“捕获”一个脉冲另一个线程正在等待)。恐怕我建议您尝试重新设计,这样您就不需要它了。编辑:在.NET4.5中,这可用于Monitor.IsEntered. 关于c#-如何测试线程是否持有C#
我看过很多关于“Mockingaprivatemethod”的帖子和问题,但仍然无法让它工作,也没有找到真正的答案。让我们忘记代码的味道,你不应该这样做等等......据我所知,我做了以下事情:1)创建了一个类库“MyMoqSamples”2)添加了对Moq和NUnit的引用3)编辑AssemblyInfo文件并添加[装配:InternalsVisibleTo(“DynamicProxyGenAssembly2”)][程序集:InternalsVisibleTo("MyMoqSamples")]4)现在需要测试一个私有(private)方法。因为它是一个私有(private)方法,所以
给定这样一个类:[Serializable]publicclassMyClass{stringname;stringaddress;publicMyClass(SerializationInfoinfo,StreamingContextcontext){name=info.GetString("name");if(/*todo:checkifavalueforaddressexists*/)address=info.GetString("address");}publicvoidGetObjectData(SerializationInfoinfo,StreamingContextco
似乎在许多单元测试中,参数化测试的值要么被烘焙到测试本身,要么以预先确定的方式声明。例如,这是取自nUnit的单元测试(EqualsFixture.cs)的测试:[Test]publicvoidInt(){intval=1;intexpected=val;intactual=val;Assert.IsTrue(expected==actual);Assert.AreEqual(expected,actual);}这具有确定性的优点;如果您运行测试一次,但它失败了,它将继续失败,直到代码被修复。但是,您最终只能测试一组有限的值。不过,我忍不住觉得这是一种浪费;完全相同的测试可能在项目的整
我想测试设置某个属性(或更一般地说,执行某些代码)是否会在我的对象上引发某个事件。在这方面,我的问题类似于UnittestingthataneventisraisedinC#,但我需要很多这样的测试,而且我讨厌样板文件。所以我正在寻找一个更通用的解决方案,使用反射。理想情况下,我想做这样的事情:[TestMethod]publicvoidTestWidth(){MyClassmyObject=newMyClass();AssertRaisesEvent(()=>{myObject.Width=42;},myObject,"WidthChanged");}对于AssertRaisesEv
如果我这样做:DataSetds=GetMyDataset();try{stringsomevalue=ds.Tables[0].Rows[0]["col1"];}catch{//maybesomethingwasnull}有没有不使用try/catch来检查空值的好方法?只是我不在乎“col1”中的值是否为空,或者“col1”是否不存在,或者是否没有返回行,或者表是否不存在!也许我应该关心?:)也许try/catch是解决这个问题的最佳方法,但我只是想知道是否还有其他方法可以做到这一点?谢谢! 最佳答案 不关心表或列有点奇怪。例如
我正在尝试为我的网络API设置单元测试。我从网上找到的一些零零碎碎的东西中整理了一些测试代码。我已经发送了测试请求并收到了响应,但我一直在测试响应。这就是我到目前为止所得到的。这是使用xunit测试包,但我认为这对我要实现的目标并不重要。(为困惑的代码道歉)[Fact]publicvoidCreateOrderTest(){stringbaseAddress="http://dummyname/";//ServerHttpConfigurationconfig=newHttpConfiguration();config.Routes.MapHttpRoute("Default","ap